package com.skyable.account.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.skyable.account.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @author GaoYuan
 * @title: User
 * @projectName spring-cloud-demo
 * @description: TODO
 * @date 2021/3/2317:55
 */
@Data
@TableName("sys_user")
public class SysUser extends BaseEntity {

    @ApiModelProperty(value = "ID")
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 主域ID
     */
    @ApiModelProperty(value = "主域ID")
    private Long domainId;

    /**
     * 用户类型  1-企业子账号 2-企业账号 3-超管（有且只有1个）
     */
    @ApiModelProperty(value = "用户类型")
    private Integer userType;

    /**
     * 所属部门ID
     */
    @ApiModelProperty(value = "所属部门ID")
    private Long deptId;

    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名")
    private String username;
    /**
     * 密码
     */
    @ApiModelProperty(value = "密码")
    @JSONField(deserialize = false, serialize = false)
    private String password;

    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号")
    private String phone;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱")
    private String email;

    /**
     * 性别（0 女,1 男,2 未知）
     */
    @ApiModelProperty(value = "性别：0 女，1 男，2 其他")
    private Integer sex;
    /**
     * 用户头像
     */
    @ApiModelProperty(value = "用户头像")
    private String avatar;
    /**
     * 帐号状态（0 正常 1 停用）
     */
    @ApiModelProperty(hidden = true)
    private Integer status;
    /**
     * 删除标志（0代表存在 1代表删除）
     */
    @ApiModelProperty(hidden = true)
    private Integer delFlag;
    /**
     * 最后登陆IP
     */
    @ApiModelProperty(hidden = true)
    private String loginIp;
    /**
     * 最后登陆时间
     */
    @ApiModelProperty(hidden = true)
    private Date loginDate;

    @ApiModelProperty(value = "角色ID集合")
    @TableField(exist = false)
    private List<Long> roleIdList;
}
